import request from "@/utils/request";
// 菜单查询对象
export interface MenuQuery {
  /** 搜索关键字 */
  keywords?: string;
}
/** 菜单表单对象 */
export interface MenuForm {
  menuId?: number; // 可选，存在则更新对应ID的菜单，不存在则创建新菜单
  menuName: string; // 必填
  parentId?: number; // 必填
  orderNum: number; // 必填
  menuUrl: string; // 必填
  menuVisible: number; // 必填
  createBy?: string; // 可选
  updateBy?: string; // 可选
  type: string;
}
/** 菜单数据对象 */
export interface MenuVO {
  children: MenuVO[];
  createBy: string;
  createdAt: string;
  menuButtonList: string;
  menuId: number;
  menuName: string;
  menuUrl: string;
  menuVisible: number;
  orderNum: number;
  parentId: number;
  type: string;
  updateAt: string;
  updateBy: string;
}
class menuAPI {
  /** 根据用户ID查询菜单路由列表 */
  static getMenuQueryById(id: number) {
    return request({
      url: `/api/sys-menu/getMenuByUserId/${id}`,
      method: "get",
      // params: params,
    });
  }
  /** 获取菜单数据列表 */
  static getMenu() {
    return request<any, MenuVO[]>({
      url: "/api/sys-menu",
      method: "get",
      // params: params,
    });
  }
  /** 根据ID获取菜单信息 */
  static getMenuQuery(id: number) {
    return request<any, MenuForm>({
      url: `/api/sys-menu/${id}`,
      method: "get",
      // params: params,
    });
  }
  /** 新增+修改菜单数据分页列表 */
  static updateMenu(params: MenuForm) {
    return request({
      url: "/api/sys-menu",
      method: "post",
      data: params,
    });
  }
  /** 删除菜单数据分页列表 */
  static deleteMenu(id: number) {
    return request({
      url: `/api/sys-menu/${id}`,
      method: "delete",
      // params: params,
    });
  }
  /** 查询所有按钮的接口 */
  static getMenuBtn() {
    return request({
      url: `/api/sys-menu/allButton`,
      method: "get",
      // params: params,
    });
  }
}

export default menuAPI;
